home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
usr
/
bin
/
printer-profile
< prev
next >
Wrap
Text File
|
2009-10-19
|
6KB
|
297 lines
#!/bin/sh
PROGNAME="$0"
usage() {
cat <<EOF
NAME
`basename $PROGNAME` - printer-profile using X-Rite ColorMunki and Argyll CMS
SYNOPSIS
`basename $PROGNAME` [options] manuf model [rgb|cmyk] [patches] [ink-limit]
DESCRIPTION
Prints a test chart, uses the ColorMunki instrument to scan it in, then
computes an ICM profile using the Argyll Color Management System.
Manuf is "sam". Model is "clp-300" or "clp-315".
Manuf is "hp". Model is "2600" or "cp1215".
Manuf is "km". Model is "1600" or "2300" or "2530".
"rgb" is the usual setting. "patches" is a multiple 196 per page.
Edit the script for additional models.
OPTIONS
-b 1|2 Bits per pixel ($BPP)
-r XRESxYRES Resolution. Default=''. ($RES)
-P rem-print Remote print (64-bit) machine, or none ($REMPRINT)
-S rem-scan Remote scan (ColorMunki) machine, or none ($REMSCAN)
-D lvl Debug level
EXAMPLE
$ printer-profile sam 315 rgb 196
BUGS
gs 8.64 and before has problems with 32-bit machines and color profile
data. Don't use!
You need two copies of Argyll: must be 1.0.3 and 1.1.0beta. Otherwise,
targen and colprof core dumps.
SEE ALSO
http://www.xritephoto.com/html/colormunkisplash.htm
from Amazon, \$390 shipped
http://www.argyllcms.com/
free!
EOF
exit 1
}
#
# Report an error and exit
#
error() {
echo "`basename $PROGNAME`: $1" >&2
exit 1
}
debug() {
if [ $DEBUG -ge $1 ]; then
echo "`basename $PROGNAME`: $2" >&2
fi
}
#
# Execute a command as root
#
root() {
if [ -x /usr/bin/root ]; then
/usr/bin/root $@
else
su -c "$*"
fi
}
#
# trap on error
#
trap "exit 1" ERR
#
# Process the options
#
REMPRINT=amd
REMSCAN=mac
REMSCAN=none
RGB=rgb
PATCHES=196 #Per page!
BPP=1
RES=
DEBUG=0
while getopts "b:r:P:S:D:h?" opt
do
case $opt in
b) BPP="$OPTARG";;
r) RES="$OPTARG";;
P) REMPRINT="$OPTARG";;
S) REMSCAN="$OPTARG";;
D) DEBUG="$OPTARG";;
h|\?) usage;;
esac
done
shift `expr $OPTIND - 1`
#
# Main Program
#
if [ $# -lt 2 ]; then
usage
fi
MANUF="$1"
MODEL="$2"
if [ $# -ge 3 ]; then
RGB="$3"
fi
if [ $# -ge 4 ]; then
PATCHES="$4"
fi
INK="$5"
BPP_b="-b$BPP"
RES_r=
if [ "$RES" != "" ]; then
RES_r="-r$RES"
fi
case "$MANUF" in
km)
MANUF=km
case "$MODEL" in
*1600*)
FOO=foo2lava
WRAPPER="foo2lava-wrapper $RES_r -z2 -c -C10 -Gnone.icm"
OUT="root cp xxx.prn /dev/usb/lp1"
;;
*2530*)
FOO=foo2lava
WRAPPER="foo2lava-wrapper $RES_r -z0 -c -C10 -Gnone.icm"
OUT="nc 192.168.1.13 9100 < xxx.prn"
;;
*2300*)
FOO=foo2zjs
WRAPPER="foo2zjs-wrapper $RES_r -c -C10 -Gnone.icm"
OUT="nc 192.168.1.10 9100 < xxx.prn"
;;
*)
usage
;;
esac
;;
sam*)
MANUF=sam
FOO=foo2qpdl
case "$MODEL" in
*300*)
WRAPPER="foo2qpdl-wrapper $RES_r -z0 -c -C10 -Gnone.icm"
OUT="nc 192.168.1.11 9100 < xxx.prn"
;;
*315*)
WRAPPER="foo2qpdl-wrapper $RES_r -z2 -c -C10 -Gnone.icm"
OUT="root cp xxx.prn /dev/usb/lp1"
;;
*)
usage
;;
esac
;;
hp*)
MANUF=hp
FOO=foo2hp
case "$MODEL" in
*2600*)
WRAPPER="foo2hp2600-wrapper $RES_r $BPP_b -z0 -c -C10 -Gnone.icm"
OUT="nc 192.168.1.12 9100 < xxx.prn"
;;
*cp1215*)
WRAPPER="foo2hp2600-wrapper $RES_r $BPP_b -z1 -c -C10 -Gnone.icm"
OUT="root cp xxx.prn /dev/usb/lp2"
;;
*)
usage
;;
esac
;;
*)
usage
;;
esac
mrp="$MANUF-$MODEL-$RGB-$PATCHES"
if [ "$INK" != "" ]; then
mrp="$mrp-ink$INK"
fi
if [ "$BPP" != "" ]; then
mrp="$mrp-bpp$BPP"
fi
if [ "$RES" != "" ]; then
mrp="$mrp-$RES"
fi
echo "$mrp"
BETABIN=~/src/Argyll_V1.1.0_Beta/bin
if [ ! -x $BETABIN/printtarg ]; then
error "No beta bin in $BETABIN!"
fi
targen_opts=
case "$RGB" in
rgb|RGB) targen_opts="$targen_opts -d3";;
cmyk|CMYK) targen_opts="$targen_opts -d4";;
*) error "Parm2: Must be rgb or cmyk";;
esac
targen_opts="$targen_opts -f$PATCHES"
if [ "$INK" != "" ]; then
targen_opts="$targen_opts -l$INK"
fi
echo
echo "******************************** targen ********************************"
echo "targen $targen_opts $mrp"
if ! targen $targen_opts $mrp >$mrp.err1; then
cat $mrp.err1
exit 1
fi
echo
echo "******************************* printtarg ******************************"
echo "$BETABIN/printtarg -h -v -iCM -p Letter -R0 $mrp"
$BETABIN/printtarg -h -v -iCM -p Letter -R0 $mrp
evince $mrp.ps &
echo
echo "******************************* print it *******************************"
echo "$WRAPPER"
case "$REMPRINT" in
''|none)
$WRAPPER <$mrp.ps >$mrp.prn
;;
*)
ssh $REMPRINT "$WRAPPER" <$mrp.ps >$mrp.prn
;;
esac
ls -l $mrp.prn
echo -n "Print it? [y|n]? "
read yes
case "$yes" in
y|Y)
cp $mrp.prn xxx.prn
echo " $OUT"
eval $OUT
rm -f xxx.prn
esac
echo
echo "******************************* chartread ******************************"
case "$REMSCAN" in
''|none)
echo "$BETABIN/chartread $mrp"
$BETABIN/chartread $mrp
;;
*)
echo "scp $mrp.ti2 mac:"
scp $mrp.ti2 mac:
echo "$BETABIN/chartread $mrp"
echo -n "Scanned on remote system $REMSCAN? [y/n]? "
read yes
case "$yes" in
y|Y)
scp $REMSCAN:$mrp.ti3 .
;;
esac
;;
esac
echo
echo "******************************** colprof *******************************"
case $RGB in
rgb)
echo "colprof -v -D\"$mrp\" -qm -cmt -dpp $mrp"
colprof -v -D"$mrp" -qm -cmt -dpp $mrp
;;
cymk)
echo "colprof -v -D\"$mrp\" -qm -cmt -dpp -kr $mrp"
colprof -v -D"$mrp" -qm -cmt -dpp -kr $mrp
;;
esac
root cp $mrp.icc /usr/share/$FOO/icm/testing.icm
echo "/usr/share/$FOO/icm/testing.icm created!"
ls -l /usr/share/$FOO/icm/